#ifndef BUFF_H_INCLUDED
#define BUFF_H_INCLUDED

#include <string>
#include <map>

enum Bufftype
{
    Attack,
    Defense,
    Speed,

};

class Buff
{
public:
    Buff(const int& dur, const std::string& ID);
    Buff(const Buff& b);
    void set(Bufftype bt, const int& str);

    std::string getID() const { return cancelID; }
    int getStrength(const Bufftype& bt) const { return type.at(bt); }
    int getDuration() const { return duration; }
    bool isExpired() const { return duration == 0; }

    void tick();
private:
    std::string cancelID;
    int duration;
    std::map<Bufftype, int> type;
};

#endif // BUFF_H_INCLUDED
